package cn.fl.customer.transform;

import cn.cmm.base.framework.constant.BaseConstant;
import cn.cmm.base.framework.utils.CollectionUtils;
import cn.cmm.base.framework.utils.DateUtils;
import cn.cmm.base.framework.utils.StringUtils;
import cn.fl.customer.vo.CstNpBscInfoVO;
import fl.customer.facade.customer.dto.CstNpBscInfoDTO;

import java.util.ArrayList;
import java.util.List;

 /**
 * @Description: 自然人客户基础信息表 转换器
 * VO是客户端传递数据到服务端进行转换的数据 
 * VO转换数据变成DTO传递到服务端 
 * VO不能在服务端出现
 */
public class CstNpBscInfoVOTransform {


	/**
	 * DTO 转  VO
	 * @param po CstNpBscInfoDTO
	 * @return CstNpBscInfoVO
	 */
	public static CstNpBscInfoVO toVO(CstNpBscInfoDTO dto) {
		CstNpBscInfoVO  vo = null;
		if (dto != null) { 
			vo = new CstNpBscInfoVO();
			vo.setId(dto.getId());
			vo.setGenderCd(dto.getGenderCd());//性别（CMM0006）
			if(null != dto.getBirthday()){
				vo.setBirthday(DateUtils.formatDateToString(dto.getBirthday(), DateUtils.YYYY_MM_DD));//生日
			}else{
				vo.setBirthday("");//生日
			}
			
			vo.setMarStsCd(dto.getMarStsCd());//婚姻状况（CST0007）
			vo.setEduLvlCd(dto.getEduLvlCd());//文化程度（CST0008）
			vo.setHomeTel(dto.getHomeTel());//家庭电话
			vo.setWorkTel(dto.getWorkTel());//工作单位电话
			vo.setWorkPlc(dto.getWorkPlc());//工作单位名称
			vo.setZipNo(dto.getZipNo());//通讯地址邮编
			vo.setIdAddr(dto.getIdAddr());//身份证地址
			vo.setHomeAddr(dto.getHomeAddr());//家庭地址
			vo.setPostAddr(dto.getPostAddr());//通讯地址
			vo.setWorkAddr(dto.getWorkAddr());//单位地址
			vo.setWorkYrs(dto.getWorkYrs());//从业年限
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setAge(dto.getAge());//年龄
			vo.setGenderCdNm(dto.getGenderCdNm());
			vo.setMarStsCdNm(dto.getMarStsCdNm());
			vo.setEduLvlCdNm(dto.getEduLvlCdNm());
			vo.setMp1(dto.getMp1());
			vo.setMp2(dto.getMp2());
			vo.setBuOrgCd(dto.getBuOrgCd());
			vo.setOrgCd(dto.getOrgCd());
			vo.setOcpCd(dto.getOcpCd());
			vo.setPosCd(dto.getPosCd());
			vo.setTitCd(dto.getTitCd());
			vo.setOcpCdNm(dto.getOcpCdNm());
			vo.setPosCdNm(dto.getPosCdNm());
			vo.setTitCdNm(dto.getTitCdNm());
			
			vo.setHighDgCd(dto.getHighDgCd());
			vo.setLivCndCd(dto.getLivCndCd());
			vo.setEmail(dto.getEmail());
			vo.setCstLvlCd(dto.getCstLvlCd());
			vo.setYrInc(dto.getYrInc());
			vo.setOfficeZip(dto.getOfficeZip());
			vo.setWorkStYr(dto.getWorkStYr());
			vo.setHomeZip(dto.getHomeZip());
			
			vo.setHighDgCdNm(dto.getHighDgCdNm());
			vo.setLivCndCdNm(dto.getLivCndCdNm());
			vo.setCstLvlCdNm(dto.getCstLvlCdNm());
			
			vo.setCstNpSocialRlVO(CstNpSocialRlVOTransform.toVO(dto.getCstNpSocialRlDTO()));
			
			vo.setUsedNm(dto.getUsedNm());
			vo.setDrvLicTyp(dto.getDrvLicTyp());
			vo.setNation(dto.getNation());
			vo.setCertValidEDt(dto.getCertValidEDt());
			vo.setCertValidSDt(dto.getCertValidSDt());
			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人

            vo.setIssuingOrg(dto.getIssuingOrg());//签发机关
            vo.setRatepayingState(dto.getRatepayingState());//纳税居民申明
            vo.setDomicileProvince(dto.getDomicileProvince());
            vo.setDomicleCity(dto.getDomicleCity());
            vo.setDomicleCounty(dto.getDomicleCounty());
			vo.setLivAudStsCd(dto.getLivAudStsCd());
			vo.setMpStsCd(dto.getMpStsCd());
			vo.setRecCstId(dto.getRecCstId());
			if(StringUtils.isNotEmpty(dto.getIsSmallBus())) {
				vo.setIsSmallBus(dto.getIsSmallBus());
				vo.setIsSmallBusNm(dto.getIsSmallBusNm());
			}else{
				vo.setIsSmallBus(BaseConstant.IS_YESNO_NO);
				vo.setIsSmallBusNm(BaseConstant.IS_YESNO_NO_NE);
			}
			vo.setIsWorkExp(dto.getIsWorkExp());//是否有工作经验（1：是，0：否）
			vo.setPostProvince(dto.getPostProvince());
			vo.setPostCounty(dto.getPostCounty());
			vo.setPostCity(dto.getPostCity());
			vo.setIsSelfEmp(dto.getIsSelfEmp());
			vo.setStdIndCd(dto.getStdIndCd());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto CstNpBscInfoVO
	 * @return CstNpBscInfoDTO
	 */
	public static CstNpBscInfoDTO toDTO(CstNpBscInfoVO vo) {
		CstNpBscInfoDTO dto = null;
		if (vo != null) {
			dto = new CstNpBscInfoDTO();
			dto.setId(vo.getId());
			dto.setGenderCd(vo.getGenderCd());//性别（CMM0006）
			if(StringUtils.isNotEmpty(vo.getBirthday())){
				dto.setBirthday(DateUtils.formatStringToDate(vo.getBirthday(), DateUtils.YYYY_MM_DD));//生日
			}
			dto.setMarStsCd(vo.getMarStsCd());//婚姻状况（CST0007）
			dto.setEduLvlCd(vo.getEduLvlCd());//文化程度（CST0008）
			dto.setHomeTel(vo.getHomeTel());//家庭电话
			dto.setWorkTel(vo.getWorkTel());//工作单位电话
			dto.setWorkPlc(vo.getWorkPlc());//工作单位名称
			dto.setZipNo(vo.getZipNo());//通讯地址邮编
			dto.setIdAddr(vo.getIdAddr());//身份证地址
			dto.setHomeAddr(vo.getHomeAddr());//家庭地址
			dto.setPostAddr(vo.getPostAddr());//通讯地址
			dto.setWorkAddr(vo.getWorkAddr());//单位地址
			dto.setWorkYrs(vo.getWorkYrs());//从业年限
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setAge(vo.getAge());//年龄
			dto.setGenderCdNm(vo.getGenderCdNm());
			dto.setMarStsCdNm(vo.getMarStsCdNm());
			dto.setEduLvlCdNm(vo.getEduLvlCdNm());
			dto.setMp1(vo.getMp1());
			dto.setMp2(vo.getMp2());
			dto.setBuOrgCd(vo.getBuOrgCd());
			dto.setOrgCd(vo.getOrgCd());
			dto.setOcpCd(vo.getOcpCd());
			dto.setPosCd(vo.getPosCd());
			dto.setTitCd(vo.getTitCd());
			dto.setOcpCdNm(vo.getOcpCdNm());
			dto.setPosCdNm(vo.getPosCdNm());
			dto.setTitCdNm(vo.getTitCdNm());
			
			dto.setHighDgCd(vo.getHighDgCd());
			dto.setLivCndCd(vo.getLivCndCd());
			dto.setEmail(vo.getEmail());
			dto.setCstLvlCd(vo.getCstLvlCd());
			dto.setYrInc(vo.getYrInc());
			dto.setOfficeZip(vo.getOfficeZip());
			dto.setWorkStYr(vo.getWorkStYr());
			dto.setHomeZip(vo.getHomeZip());
			
			dto.setCstNpSocialRlDTO(CstNpSocialRlVOTransform.toDTO(vo.getCstNpSocialRlVO()));
			dto.setUsedNm(vo.getUsedNm());
			dto.setDrvLicTyp(vo.getDrvLicTyp());
			dto.setNation(vo.getNation());
			dto.setCertValidEDt(vo.getCertValidEDt());
			dto.setCertValidSDt(vo.getCertValidSDt());
			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人

            dto.setIssuingOrg(vo.getIssuingOrg());//签发机关
            dto.setRatepayingState(vo.getRatepayingState());//纳税居民申明
            dto.setDomicileProvince(vo.getDomicileProvince());
            dto.setDomicleCity(vo.getDomicleCity());
            dto.setDomicleCounty(vo.getDomicleCounty());
            dto.setLivAudStsCd(vo.getLivAudStsCd());
            dto.setMpStsCd(vo.getMpStsCd());
            dto.setRecCstId(vo.getRecCstId());
            if(StringUtils.isNotEmpty(vo.getIsSmallBus())) {
				dto.setIsSmallBus(vo.getIsSmallBus());
				dto.setIsSmallBusNm(vo.getIsSmallBusNm());
			}else{
            	dto.setIsSmallBus(BaseConstant.IS_YESNO_NO);
				dto.setIsSmallBusNm(BaseConstant.IS_YESNO_NO_NE);
			}
            dto.setIsWorkExp(vo.getIsWorkExp());//是否有工作业经验（1：是，0：否）
			dto.setPostProvince(vo.getPostProvince());
			dto.setPostCity(vo.getPostCity());
			dto.setPostCounty(vo.getPostCounty());
			dto.setIsSelfEmp(vo.getIsSelfEmp());
			dto.setStdIndCd(vo.getStdIndCd());
        }
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list List<CstNpBscInfo>
	 * @return List<CstNpBscInfoDTO>
	 */
	public static List<CstNpBscInfoVO> toVOList(List<CstNpBscInfoDTO> list) {
		List<CstNpBscInfoVO>  voList = new ArrayList<CstNpBscInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (CstNpBscInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
}
